namespace RebelStar.Engine.Sprites
{
    public class StructureSprite : TerrainSprite
    {
        private readonly int height;
        private readonly int transparency;

        public StructureSprite(string assetName, int statesHoriz, int statesVert)
            : this(assetName, statesHoriz, statesVert, TerrainSprite.HEIGHT, true)
        {}
        public StructureSprite(string assetName, int statesHoriz, int statesVert, int height, bool isPassable)
            : this(assetName, statesHoriz, statesVert, height, isPassable?1:0)
        {}
        public StructureSprite(string assetName, int statesHoriz, int statesVert, int height, bool isPassable, int transparency)
            : this(assetName, statesHoriz, statesVert, height, isPassable?1:0, transparency)
        {}
        public StructureSprite(string assetName, int statesHoriz, int statesVert, int height, int mp)
            : this(assetName, statesHoriz, statesVert, height, mp, 100)
        {}
        public StructureSprite(string assetName, int statesHoriz, int statesVert, int height, int mp, int transparency)
            : base(assetName, statesHoriz, statesVert, mp)
        {
            this.height = height;
            this.transparency = transparency;
        }

        public override int Width
        {
            get { return TerrainSprite.WIDTH; }
        }
        public override int Height
        {
            get { return height; }
        }
        /// <summary>
        /// Percent of transparency
        /// </summary>
        public int Transparency
        {
            get { return transparency; }
        }
    }
}
